/**************************************************************************************
 *
 * @(#) BaseTask.java
 * @Package com.jgdt.jgdtkasannong_university_gene_backend.config.task
 **************************************************************************************/
package com.jgdt.jgdtkasannong_university_gene_backend.config.job;

import com.jgdt.jgdtkasannong_university_gene_backend.biz.content.BaseBiz;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @description: 基地相关定时器
 * @author: huangAn
 * @createDate: 2025/05/16
 */
@Component
@Slf4j
public class BaseTask {

    @Autowired
    private BaseBiz baseBiz;

//    /**
//     * todo 测试 每分钟执行一次
//     * cron表达式说明：
//     * 秒 分 时 日 月 周
//     */
//    @Scheduled(cron = "0 * * * * ?")
//    public void stakTest001() {
//        // 这里写你的业务逻辑
//        log.info("测试任务[stakTest001]定时任务执行中...当前时间: " + new Date());
//        try {
//            // 调用你的业务方法
//            // yourBusinessService.doSomething();
//        } catch (Exception e) {
//            // 异常处理
//            System.err.println("定时任务执行出错: " + e.getMessage());
//            e.printStackTrace();
//        }
//    }

    /**
     * 每天凌晨3点执行
     * cron表达式说明：
     * 秒 分 时 日 月 周
     * "0 0 3 * * ?" 表示每天3:00:00执行
     * todo-可优化可自定义线程池参数 fixedRate = 5000, poolSize = 3
     */
    @Scheduled(cron = "0 0 3 * * ?")
    public void syncChannelTask() {
        // 这里写你的业务逻辑
        log.info("定时任务[syncChannelTask]执行开始...当前时间: " + new Date());
        try {
            //同步萤石云所有通道
            baseBiz.syncChannel();
        } catch (Exception e) {
            // 异常处理
            log.error("定时任务[syncChannelTask]执行出错: " + e.getMessage());
            e.printStackTrace();
        }
        log.info("定时任务[syncChannelTask]执行中完毕...当前时间: " + new Date());
    }


}




